"""
Configuration system for Parameter-Efficient Fine-Tuning (PEFT) methods.

This package provides a unified configuration framework for all PEFT methods,
including configuration classes, factory functions, and utilities.
"""

# Configuration classes
from continuallearning.models.pefts.common.config.config import (
    BasePEFTConfig,
    LoRAConfig,
    BypassLoRAConfig,
    PromptConfig,
    L2pConfig,
    CONFIG_REGISTRY,
)

from continuallearning.models.pefts.common.config.hook_manager_config import (
    ModuleDiscoveryConfig,
    HookFactoryConfig,
    HookManagerConfig,
)

# Configuration factory and utilities
from continuallearning.models.pefts.common.config.config_factory import (
    create_peft_config,
    create_peft_config_typed,
    config_to_dict,
    merge_configs,
    validate_config,
    get_field_metadata,
)

# Configuration utilities
from continuallearning.models.pefts.common.config.config_utils import (
    validate_config as validate_config_util,
    detect_attention_heads,
    detect_hidden_size,
    merge_config_with_args,
)

from continuallearning.models.pefts.common.config.context_config import (
    BackboneFeatures,
    TaskContext,
    ContextManagerConfig,
)

__all__ = [
    # Base configuration classes
    "BasePEFTConfig",
    # Specific PEFT configurations
    "LoRAConfig",
    "BypassLoRAConfig",
    "PromptConfig",
    "L2pConfig",
    # Configuration registry
    "CONFIG_REGISTRY",
    # Factory functions
    "create_peft_config",
    "create_peft_config_typed",
    # Utility functions
    "config_to_dict",
    "merge_configs",
    "validate_config",
    "validate_config_util",
    "get_field_metadata",
    "detect_attention_heads",
    "detect_hidden_size",
    "merge_config_with_args",
    # Hook manager configuration
    "ModuleDiscoveryConfig",
    "HookFactoryConfig",
    "HookManagerConfig",
    # Context management
    "BackboneFeatures",
    "TaskContext",
    "ContextManagerConfig",
]
